package cn.fl.product.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.cmm.base.framework.utils.StringUtils;
import cn.fl.product.vo.SplUsrRVO;
import fl.spl.facade.spl.dto.SplUsrRDTO;

/**
 * @Description: 供应商-系统用户关系表 转换器
 * VO是客户端传递数据到服务端进行转换的数据 
 * VO转换数据变成DTO传递到服务端 
 * VO不能在服务端出现
 */
public class SplUsrRVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto SplUsrRDTO
	 * @return SplUsrRVO
	 */
	public static SplUsrRVO toVO(SplUsrRDTO dto) {
		SplUsrRVO  vo = null;
		if (dto != null) {
			vo = new SplUsrRVO();
			vo.setId(dto.getId());
			vo.setUsrId(dto.getUsrId());//用户ID
			vo.setUsrTypCd(dto.getUsrTypCd());//用户类型（SYS0003）
			vo.setSplId(dto.getSplId());//供应商ID
			vo.setIsChg(dto.getIsChg());//是否主管
			vo.setIsSysDef(dto.getIsSysDef());//是否系统内置（SYS0021）
			vo.setSplBizTypCd(dto.getSplBizTypCd());//供应商业务类型（SPL0010）

			if (StringUtils.isNotEmpty(dto.getBuOrgCd())) {// 客户经理所属事业部
				vo.setBuOrgCd(dto.getBuOrgCd());
			} else if (StringUtils.isNotEmpty(dto.getOrgCd()) && dto.getOrgCd().length() >= 8) {
				vo.setBuOrgCd(dto.getOrgCd().substring(0, 8));
			}			vo.setOrgCd(dto.getOrgCd());//客户经理所属组织架构
			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人

			vo.setRlNm(dto.getRlNm());
			vo.setMp(dto.getMp());
			vo.setOrgDispNm(dto.getOrgDispNm());
			//jiangzg 2018-4-11 10:56:01 add
			vo.setEffectDt(dto.getEffectDt());
			vo.setIsPrivate(dto.getIsPrivate());
			vo.setIsValidForever(dto.getIsValidForever());
			vo.setIsDel(dto.getIsDel());
			vo.setEmployeePosCd(dto.getEmployeePosCd());
			vo.setSplNm(dto.getSplNm());

		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo SplUsrRVO
	 * @return SplUsrRDTO
	 */
	public static SplUsrRDTO toDTO(SplUsrRVO vo) {
		SplUsrRDTO dto = null;
		if (vo != null) {
			dto = new SplUsrRDTO();
			dto.setId(vo.getId());
			dto.setUsrId(vo.getUsrId());//用户ID
			dto.setUsrTypCd(vo.getUsrTypCd());//用户类型（SYS0003）
			dto.setSplId(vo.getSplId());//供应商ID
			dto.setIsChg(vo.getIsChg());//是否主管
			dto.setIsSysDef(vo.getIsSysDef());//是否系统内置（SYS0021）
			dto.setSplBizTypCd(vo.getSplBizTypCd());//供应商业务类型（SPL0010）
			dto.setBuOrgCd(vo.getBuOrgCd());//客户经理所属事业部
			dto.setOrgCd(vo.getOrgCd());//客户经理所属组织架构
			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			//jiangzg 2018-4-11 10:56:01 add
			dto.setEffectDt(vo.getEffectDt());
			dto.setIsPrivate(vo.getIsPrivate());
			dto.setIsValidForever(vo.getIsValidForever());
			dto.setIsDel(vo.getIsDel());
			dto.setEmployeePosCd(vo.getEmployeePosCd());

		}
		return dto;
	}

	/**
	 * DTO集合 转 VO集合
	 * @param list List<SplUsrR>
	 * @return List<SplUsrRDTO>
	 */
	public static List<SplUsrRVO> toVOList(List<SplUsrRDTO> list) {
		List<SplUsrRVO>  voList = new ArrayList<SplUsrRVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (SplUsrRDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}

	/**
	 *  VO集合 转 DTO集合
	 * @param list List<SplUsrRVO>
	 * @return List<SplUsrRDTO>
	 */
	public static List<SplUsrRDTO> toDTOList(List<SplUsrRVO> list) {
		List<SplUsrRDTO>  dtoList = new ArrayList<>();
		if(CollectionUtils.isNotEmpty(list)){
			for (SplUsrRVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}